package com.py.framework.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.py.framework.entity.WorkFlowBus;

/**
 * 工作流Dao
 *
 * @author Leegern
 * @date 2018年5月24日
 */
public interface WorkFlowDao {

    /**
     * 根据流程名称查询流程数据
     *
     * @param actName
     * @return
     */
    int getActsByName(@Param("actName") String actName);

    /**
     * 获取待启动的工作流任务
     *
     * @return
     */
    List<WorkFlowBus> getNoStartWFJobs();

    /**
     * 根据流程id获取对象
     *
     * @param procId 流程实例Id
     * @return
     */
    List<WorkFlowBus> findActByProcId(@Param("procId") String procId);

    /**
     * 根据流程Id获取数据
     *
     * @param wfId 流程Id
     * @return
     */
    List<WorkFlowBus> getActByWFId(@Param("wfId") long wfId);

    /**
     * 根据业务Id获取数据
     *
     * @param busId 业务Id
     * @return
     */
    List<WorkFlowBus> getActsByBusId(@Param("wfId") long busId);

    /**
     * 添加业务流程数据
     *
     * @param entity
     * @return
     */
    int addWorkFlowBus(WorkFlowBus entity);

    /**
     * 更新业务流程数据
     *
     * @param entity
     * @return
     */
    int updateWorkFlowBus(WorkFlowBus entity);

    List<WorkFlowBus> selectHandledWorkFlowBus();

    void updateWorkFlowUpdateFlag(@Param("id") String id);

    int selectDataOwnerByTaskId(@Param("taskId") String taskId);

    int selectBusIdByTaskId(@Param("taskId") String taskId);

    /**
     * 功能描述: 查询企业异议处理历史记录
     *
     * @param key 工作流key
     * @param id  业务id
     * @return WorkFlowBus 工作流对象
     * @author YaoS
     * @date 19/1/23 14:29
     */
    WorkFlowBus getDissentProcessHistory(
            @Param("key") String key,
            @Param("id") String id);
}
